package com.bsoft.exchange.domain;

import lombok.Data;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.io.Serializable;
import java.util.List;

/**
 * 微生物 检验报告详情
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "LabReport")
@Data
public class MicrobiologyReportDomain implements Serializable {
    /**
     * 文档唯一号
     */
    @XmlElement(name = "DCId")
    private String dCId;

    /**
     * 检验标本号
     */
    @XmlElement(name = "SampleNo")
    private String sampleNo;

    /**
     * 条码号
     */
    @XmlElement(name = "BarcodeNo")
    private String barcodeNo;

    /**
     * 就诊机构代码
     */
    @XmlElement(name = "AuthorOrganization")
    private String authorOrganization;

    /**
     * 患者类型
     */
    @XmlElement(name = "PatientType")
    private String patientType;

    /**
     * 门诊号码
     */
    @XmlElement(name = "ClinicId")
    private String clinicId;

    /**
     * 住院号码
     */
    @XmlElement(name = "HospizationId")
    private String hospizationId;

    /**
     * 患者姓名
     */
    @XmlElement(name = "Name")
    private String name;

    /**
     * 性别代码
     */
    @XmlElement(name = "Sex")
    private String sex;

    /**
     * 年龄
     */
    @XmlElement(name = "Age")
    private String age;

    /**
     * 科室名称
     */
    @XmlElement(name = "DeptName")
    private String deptName;

    /**
     * 病区名称
     */
    @XmlElement(name = "WardName")
    private String wardName;

    /**
     * 临床诊断
     */
    @XmlElement(name = "DiagnoseName")
    private String diagnoseName;

    /**
     * 检验医嘱名称
     */
    @XmlElement(name = "LabOrdersItemName")
    private String labOrdersItemName;

    /**
     * 检验申请时间
     */
    @XmlElement(name = "RequestTime")
    private String requestTime;

    /**
     * 检验申请医师
     */
    @XmlElement(name = "RequestDoctor")
    private String requestDoctor;

    /**
     * 检验申请医师姓名
     */
    private String requestDoctorName;

    /**
     * 标本类别名称
     */
    @XmlElement(name = "SampleTypeName")
    private String sampleTypeName;

    /**
     * 标本采集日期时间
     */
    @XmlElement(name = "SampleExecuteTime")
    private String sampleExecuteTime;

    /**
     * 接收标本日期时间
     */
    @XmlElement(name = "SampleReceiveTime")
    private String sampleReceiveTime;

    /**
     * 报告时间
     */
    @XmlElement(name = "ReportDateTime")
    private String reportDateTime;

    /**
     * 报告人
     */
    @XmlElement(name = "ReportDoctor")
    private String reportDoctor;


    /**
     * 报告人姓名
     */
    private String reportDoctorName;

    /**
     * 报告审核时间
     */
    @XmlElement(name = "ReportReviewTime")
    private String reportReviewTime;

    /**
     * 审核人
     */
    @XmlElement(name = "ReportReviewDoctor")
    private String reportReviewDoctor;

    /**
     * 审核人姓名
     */
    private String reportReviewDoctorName;

    /**
     * 报告状态
     */
    @XmlElement(name = "ReportStatus")
    private String reportStatus;

    /**
     * 报告类型
     */
    @XmlElement(name = "ReportType")
    private String reportType;

    @XmlElement(name = "BioResult")
    private List<BioResult> bioResult;

    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlRootElement(name = "BioResult")
    @Data
    public static class BioResult implements Serializable{
        @XmlElement(name = "BioName")
        private String bioName;

        @XmlElement(name = "BioQuantity")
        private String bioQuantity;

        @XmlElement(name = "BioUnit")
        private String bioUnit;

        @XmlElement(name = "BioNO")
        private String bioNO;

        @XmlElement(name = "Remarks")
        private String remarks;

        @XmlElement(name = "AntiResult")
        private List<AntiResult> antiResult;

        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlRootElement(name = "AntiResult")
        @Data
        public static class AntiResult implements Serializable{

            /**
             * 药敏项目名称
             */
            @XmlElement(name = "AntiName")
            private String antiName;

            /**
             * 药敏检测方法
             */
            @XmlElement(name = "Method")
            private String method;

            /**
             * KB结果
             */
            @XmlElement(name = "KBResult")
            private String KBResult;

            /**
             * MIC结果
             */
            @XmlElement(name = "MICResult")
            private String MICResult;

            /**
             * ETEST结果
             */
            @XmlElement(name = "ETESTResult")
            private String ETESTResult;

            /**
             * 结果单位
             */
            @XmlElement(name = "ResultUnit_Anti")
            private String resultUnitAnti;

            /**
             * 耐药性结果
             */
            @XmlElement(name = "AntiResult")
            private String antiResult;

            /**
             * 打印次序
             */
            @XmlElement(name = "PrintOrder")
            private String printOrder;

        }
    }
}
